home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / t_os / fapx / fapxupld.plp < prev    next >
Text File  |  1991-10-18  |  10KB  |  410 lines

  1. /************************************************************************
  2. *    自動アップロード処理の定義                    *
  3. *************************************************************************/
  4. /*    現在の会議室にメッセージをアップする    */
  5. %MSGup    {
  6.     [replyto,title,text]
  7.     var    reply    [3];
  8.     reply:=replyto;
  9.     loop    (
  10.         {
  11.         case    (reply<1||reply>999||reply={},
  12.             {No},
  13.             {
  14.             type({RE }|reply|{\n});
  15.             wait    (Wtime2,{AbortOff({ホストがおもいよ~\n})},
  16.                 {\n:},{type({1\n})},
  17.                 {◆該当する発言はありません◆},
  18.                 {
  19.                 WAITABORT(Wtime2);
  20.                 reply:={};
  21.                 im({Yes});
  22.                 },
  23.                 {行頭で/E)\n},{im({No})}
  24.                 );
  25.             },
  26.             {Yes},
  27.             {
  28.             type({SAY\n});
  29.             WAITCHAR(Wtime2,
  30.                 {属性 (1:メッセージ 2:コメント)\n:},
  31.                 {type({1\n})}
  32.                 );
  33.             WAITCHAR(Wtime2,{行頭で/E)\n},{});
  34.             im({No});
  35.             }
  36.             );
  37.         }
  38.         );
  39.     case    (title={},
  40.         {No},{type({SUB:}|title|{\n})},
  41.         {Yes},{type({SUB:自動アップロードです\n})}
  42.         );
  43.     case(text<>{},{Yes},{send(text)});
  44.     type({\n/E\n});
  45.     WAITCHAR(Wtime2,{(1:修正する 2:しない)\n:},{type({2\n})});
  46.     WAITCHAR(Wtime2,{(1:登録する  2:しない)\n:},{type({1\n})});
  47.     WAITABORT(Wtime2);
  48.     };
  49.  
  50. /*    現在のフォーラムの会議室を指定してメッセージをアップする    */
  51. %MESup    {
  52.     [mesno,replyto,title,text]
  53.     case    (mesno<1||mesno>20||mesno={},
  54.         {Yes},{MSGup(replyto,title,text)},
  55.         {No},
  56.         {
  57.         type({MES }|mesno|{\n});
  58.         wait    (Wtime2,{AbortOff({ホストがおもいよ~\n})},
  59.             {該当する会議室がありません},
  60.             {WAITABORT(Wtime4)},
  61.             {\n>},
  62.             {MSGup(replyto,title,text)}
  63.             );
  64.         }
  65.         );
  66.     };
  67.  
  68. /*    フォーラムと会議室を指定してメッセージをアップする    */
  69. %FORUMup{
  70.     [forum,mesno,replyto,title,text]
  71.     display(forum|{の会議室}|mesno|{番にアップロードします\n});
  72.     case    (
  73.         forum={},
  74.         {Yes},{MESup(mesno,replyto,title,text)},
  75.         {No},
  76.         {
  77.         type({GO }|forum|{\n});
  78.         case    (
  79.             @FORUMTOP={OK},
  80.             {No},,
  81.             {Yes},
  82.             {MESup(mesno,replyto,title,text)}
  83.             );
  84.         }
  85.         );
  86.     };
  87.  
  88. /*    バイナリメールをアップする    */
  89.  
  90. %BMAILup1
  91.     {
  92.     [sendto,date]
  93.     var    send2    [90];
  94.     var    iderr    [3];
  95.     send2:=sendto;
  96.     iderr:={No};
  97.     loop    (
  98.         {
  99.         wait    (Wtime2,{AbortOff({ホストがおもいよ~\n})},
  100.             {(IDか同報グループ名 改行で終了)\n:},
  101.             {case    (@head(send2,{,})={},
  102.                 {Yes},
  103.                 {type({\n})},
  104.                 {No},
  105.                 {type(@head(send2,{,})|{\n})}
  106.                 );
  107.             }
  108.             );
  109.         wait    (Wtime2,{AbortOff({ホストがおもいよ~\n})},
  110.             {(1:OK  2:NG) \n:},
  111.             {type({1\n});send2:=@body(send2,{,});im({Yes})},
  112.             {◆入力データエラー◆},
  113.             {send2:=@body(send2,{,});im({Yes})},
  114.             {◆既に入力されています◆},
  115.             {send2:=@body(send2,{,});im({Yes})},
  116.             {◆宛先を指定して下さい◆},
  117.             {send2:=ID;iderr:={Yes};im({Yes})},
  118.             {送信},
  119.             {im({No})},
  120.             );
  121.         }
  122.         );
  123.     wait    (Wtime2,{AbortOff({ホストがおもいよ~\n})},
  124.         {1:送信する 2:しない)\n:},
  125.         {case(iderr,{Yes},{type({2\n})},{No},{type({1\n}}))},
  126.         {2:しない  3:期日指定)\n:},
  127.         {case    (iderr,
  128.             {Yes},{type({2\n})},{No},
  129.             {case    (date={},
  130.                 {Yes},{type({1\n})},
  131.                 {No},
  132.                 {type({3\n});
  133.                  WAITCHAR(Wtime2,
  134.                     {例:990101)\n:},{type(date|{\n})});
  135.                  wait    (Wtime2,
  136.                     {AbortOff({ホストがおもいよ~})},
  137.                     {(1:OK  2:NG) \n:},{type({1\n})},
  138.                     {例:990101)\n:},{type({\n})});
  139.                     /* 日付指定間違いの場合即時送信する */
  140.                 }
  141.                 );
  142.             }
  143.             );
  144.         }
  145.         );
  146.     };
  147.  
  148. %BMAILup{
  149.     [sendto,title,file,date]
  150.     display(sendto|{へバイナリメールを送ります\n});
  151.     type({GO MAIL\n});
  152.     WAITCHAR(Wtime2,{0:その他 E:終了)\n>},{type({UPLOAD PROT:BPL\n})});
  153.     WAITCHAR(Wtime2,{属性 (1:テキスト 2:バイナリー)\n>},{type({2\n})});
  154.     WAITCHAR(Wtime2,{ファイル名 (改行のみで終了)\n:},{type(file|{\n})});
  155.     WAITCHAR(,{-アップロード終了-},{});
  156.     WAITCHAR(Wtime2,{題名 (漢字で20文字まで)\n:},
  157.             {case    (title<>{},
  158.                 {Yes},{type(title|{\n})},
  159.                 {No}, {type({自動メール送信です\n})}
  160.                 )
  161.             });
  162.     WAITCHAR(Wtime2,{(1:OK  2:NG)\n:},{type({1\n})});
  163.     BMAILup1(sendto,date);
  164.     WAITCHAR(Wtime2,{1:受信 2:送信 3:送信簿 0:その他 E:終了)\n>},{});
  165.     };
  166.  
  167. /*    宛先が複数あれば複数指定する(テキストメールのみ)    */
  168. %MAILup3{
  169.     [address]
  170.     case    (
  171.         @head(address,{,}),
  172.         {},,
  173.         ,
  174.         {
  175.         type({TO:}|@head(address,{,})|{\n});
  176.         MAILup3(@body(address,{,}));
  177.         }
  178.         );
  179.     };
  180.  
  181. /* 題名や宛先を実行時に指定する */
  182. %MAILup2{
  183.     wait    (
  184.         Wtime2,,
  185.         {題名 (漢字で20文字まで)\n:},
  186.         {type({自動送信メール\n});MAILup2;},
  187.         {又は FAX番号 改行で終了)\n:},
  188.         {type({\n});MAILup2;},
  189.         {◆宛先を指定して下さい◆},    /*宛先IDがない場合自分に送信*/
  190.         {WAITCHAR(Wtime2,{改行で終了)\n:},{type(ID|{\n});MAILup2})},
  191.         {◆入力データエラー◆},
  192.         {MAILup2},
  193.         {◆既に入力されています◆},
  194.         {MAILup2},
  195.         {(1:OK  2:NG)\n:},
  196.         {type({1\n});MAILup2;},
  197.         {(1:OK  2:NG) \n:},
  198.         {type({1\n});MAILup2;},
  199.         {送信 (1:送信する 2:しない)\n:},
  200.         {type({1\n})},
  201.         {送信(1:送信する  2:しない  3:期日指定)\n:},
  202.         {type({1\n})},            /* エグゼクティブオプション */
  203.         {(西暦下 2桁で指定 改行で期日指定なし 例:990101)\n:},
  204.         {type({\n});MAILup2;}        /* 期日指定誤りの場合 */
  205.         );
  206.     };
  207.  
  208. /*    メールをアップする    */
  209. %MAILup    {
  210.     [sendto,title,text,date]
  211.     display(sendto|{へメールを送ります\n});
  212.     type({GO MAIL\n});
  213.     WAITCHAR(Wtime2,{0:その他 E:終了)\n>},{type({2\n})});
  214.     WAITCHAR(Wtime2,{終了は行頭で/E)\n},{});
  215.     MAILup3(sendto);
  216.     case(title={},{Yes},,{No},{type({SUB:}|title|{\n})});
  217.     case(date={},{Yes},,{No},{type({SDATE:}|date|{\n})});
  218.     case(text,{},,,{send(text)});
  219.     type({\n/E\n});
  220.     WAITCHAR(Wtime2,{(1:修正する 2:しない)\n:},{type({2\n})});
  221.     MAILup2;
  222.     WAITCHAR(Wtime2,{\n>},{});
  223.     };
  224.  
  225. /*    HPにメッセージをアップする    */
  226. %HPup    {
  227.     [hpid,pass,title,text]
  228.     %HPup1    {
  229.         [title,text]
  230.         type({WRITE\n});
  231.         WAITCHAR(Wtime2,{モードで20文字以内)\n:},{type(title|{\n})});
  232.         WAITCHAR(Wtime2,{(1:OK  2:NG) \n:},{type({1\n})});
  233.         WAITCHAR(Wtime2,{終了は行頭で/E)\n},{});
  234.         case(text,{},,,{send(text)});
  235.         type({\n/E\n});
  236.         WAITCHAR(Wtime2,{修正する 2:しない)\n:},{type({2\n})});
  237.         WAITCHAR(Wtime2,{登録する  2:しない)\n:},{type({1\n})});
  238.         WAITCHAR(Wtime2,{\nHP>},{});
  239.         };
  240.  
  241.     display(hpid|{のホームパーティにアップロードします\n});
  242.     type({GO HP\n});
  243.     WAITCHAR(Wtime2,{2. Home Partyの説明\n>},{type({1\n})});
  244.     WAITCHAR(Wtime2,{:自分のHP)\n:},{type(hpid|{\n})});
  245.     wait    (
  246.         Wtime2,    {AbortOff({\nホストの反応が鈍いよぉ~\n})},
  247.         {2. Home Partyの説明\n>},
  248.         {
  249.         SNDMSG({okasi_f.snd});
  250.          display({ホームパーティのIDが違っています\n});
  251.         },
  252.         {設置しますか?(y/n)\n:},
  253.         {type({N\n});WAITABORT(Wtime2);},
  254.         {パスワード\n:},
  255.         {
  256.         loop    (
  257.             {
  258.             type(pass|{\n});
  259.             wait    (
  260.                 Wtime2,
  261.                 {AbortOff({\nホストの反応が鈍いよぉ~\n})},
  262.                 {\nHP>},{
  263.                     HPup1(title,text);
  264.                     type({T\n});
  265.                     WAITABORT(Wtime2);
  266.                     im({No});
  267.                     },
  268.                 {パスワード\n:},{im({Yes})},
  269.                 {2. Home Partyの説明\n>},{im({No})}
  270.                 );
  271.             }
  272.             );
  273.         }
  274.         );
  275.     };
  276.  
  277. /************************************************************************
  278. *    制御ファイルの内容に従って自動アップロードする            *
  279. *************************************************************************/
  280. /*    アップロードするテキストファイル名を決定する    */
  281. %UPtext    {
  282.     [fname]
  283.     case    (
  284.         fname={memo1}||fname={memo2}||
  285.         fname={memo3}||fname={memo4}||
  286.         fname={memo5}||fname={memo6}||
  287.         fname={memo7}||fname={memo8}||
  288.         fname={memo9},
  289.         {Yes},
  290.         {
  291.         case    (@mlast>=@getchar(fname,5,1)&&@mcheck==0,
  292.             {Yes},
  293.             {
  294.             mwrite(TEMP2|{_moptext.txt},@getchar(fname,5,1));
  295.             im(TEMP2|{_moptext.txt});
  296.             },
  297.             {No},
  298.             {
  299.             SNDMSG({okasi_f.snd});
  300.             display(fname|{が使えません\n});
  301.             im({});
  302.             }
  303.             )
  304.         },
  305.         {No},
  306.         {im(fname)}
  307.         );
  308.     };
  309.  
  310. /*    アップ先の振り分け    */
  311. %AUTOup1{
  312.     line:=line+1;
  313.     linebuf:={};
  314.     case    (
  315.         file={memo1}||file={memo2}||file={memo3}||
  316.         file={memo4}||file={memo5}||file={memo6}||
  317.         file={memo7}||file={memo8}||file={memo9},
  318.         {Yes},
  319.         {case    (
  320.             @mlast>=@getchar(file,5,1)&&@mcheck==0,
  321.             {Yes},
  322.             {linebuf:=@memo(@getchar(file,5,1),line,1)},
  323.             {No},
  324.             {
  325.             SNDMSG({okasi_f.snd});
  326.             display(file|{が使えません\n});
  327.             linebuf:={};
  328.             }
  329.             )
  330.         },
  331.         {No},
  332.         {linebuf:=@read(file,line,1)}
  333.         );
  334.     case    (
  335.         @head(linebuf,{=}),
  336.         {forum},    /* フォーラムへアップ */
  337.         {
  338.         FORUMup(@tail(linebuf,{forum=},{;}),
  339.             @tail(linebuf,{mes=},{;}),
  340.             @tail(linebuf,{reply=},{;}),
  341.             @tail(linebuf,{title=},{;}),
  342.             @UPtext(@tail(linebuf,{file=},{;}))
  343.                );
  344.         AUTOup1;
  345.         },
  346.         {mail},        /* メールをアップ */
  347.         {
  348.         MAILup(    @tail(linebuf,{mail=},{;}),
  349.             @tail(linebuf,{title=},{;}),
  350.             @UPtext(@tail(linebuf,{file=},{;})),
  351.             @tail(linebuf,{date=},{;})
  352.               );
  353.         AUTOup1;
  354.         },
  355.         {bmail},    /* バイナリメールをアップ */
  356.         {
  357.         BMAILup(@tail(linebuf,{bmail=},{;}),
  358.             @tail(linebuf,{title=},{;}),
  359.             @tail(linebuf,{file=},{;}),
  360.             @tail(linebuf,{date=},{;})
  361.                );
  362.         AUTOup1;
  363.         },
  364.         {hp},        /* ホームパーティへアップ */
  365.         {
  366.         HPup(    @tail(linebuf,{hp=},{;}),
  367.             @tail(linebuf,{pass=},{;}),
  368.             @tail(linebuf,{title=},{;}),
  369.             @UPtext(@tail(linebuf,{file=},{;}))
  370.             );
  371.         AUTOup1;
  372.         },
  373.         {},,        /* 空文字列なら終了 */
  374.         ,AUTOup1    /* それ以外なら次の行を読む */
  375.         );
  376.     };
  377.  
  378. %AUTOup    {
  379.     [file]
  380.     case    (
  381.         @filechk(file)||file={memo1}||file={memo2}||file={memo3}||
  382.                 file={memo4}||file={memo5}||file={memo6}||
  383.                 file={memo7}||file={memo8}||file={memo9},
  384.         {Yes},
  385.         {
  386.         line:=0;
  387.         AUTOup1;
  388.         },
  389.         {No},
  390.         {
  391.         SNDMSG({okasi_f.snd});
  392.         display({\n}|file|{制御ファイルがありません\n});
  393.         }
  394.         );
  395.     };
  396.  
  397. /*    アップロード制御ファイル指定の有無の判定処理    */
  398. %AUTOUPLD
  399.     {
  400.     display({自動アップロードを開始します\n});
  401.     footnote({自動アップロードをしています});
  402.     case    (
  403.         upldcntl={},
  404.         {No},{AUTOup(upldcntl)},
  405.         {Yes},
  406.         );
  407.     };
  408.  
  409. AUTOUPLD;
  410.